using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI.WebControls;
using SistemaLib.Entidades;

namespace SistemaLib.sipe.util
{
    public class FuncionesMeses
    {
        public static string ObtieneNombreMesCorto( int idMes)
        {
            string resultado = "";

            switch (idMes)
            {
                case 1:
                    resultado = "Ene";
                    break;
                case 2:
                    resultado = "Feb";
                    break;
                case 3:
                    resultado = "Mar";
                    break;
                case 4:
                    resultado = "Abr";
                    break;
                case 5:
                    resultado = "May";
                    break;
                case 6:
                    resultado = "Jun";
                    break;
                case 7:
                    resultado = "Jul";
                    break;
                case 8:
                    resultado = "Ago";
                    break;
                case 9:
                    resultado = "Sep";
                    break;
                case 10:
                    resultado = "Oct";
                    break;
                case 11:
                    resultado = "Nov";
                    break;
                case 12:
                    resultado = "Dic";
                    break;
                default:
                    break;
            }

            return resultado;
        }

        public static string ObtieneNombreMesLargo(int idMes)
        {
            string resultado = "";

            switch (idMes)
            {
                case 1:
                resultado = "Enero";
                break;
                case 2:
                resultado = "Febrero";
                break;
                case 3:
                resultado = "Marzo";
                break;
                case 4:
                resultado = "Abril";
                break;
                case 5:
                resultado = "Mayo";
                break;
                case 6:
                resultado = "Junio";
                break;
                case 7:
                resultado = "Julio";
                break;
                case 8:
                resultado = "Agosto";
                break;
                case 9:
                resultado = "Septiembre";
                break;
                case 10:
                resultado = "Octubre";
                break;
                case 11:
                resultado = "Noviembre";
                break;
                case 12:
                resultado = "Diciembre";
                break;
                default:
                break;
            }

            return resultado;
        }

        public static DateTime ObtieneUltimaFechaDelMes(int mes, int anio)
        {
            DateTime ret = new DateTime(anio, mes, 28);

            while (ret.Month == mes)    //Cuando Sale se paso por 1
            {
                ret = ret.AddDays(1);
            }

            return ret.AddDays(-1);
        }

        public static List<KeyValueItem> CargarComboMeses(bool nombreMesCorto)
        {
            List<KeyValueItem> lista = new List<KeyValueItem>(); 
            
            for (int i = 1; i <= 12; i++)
            {
                KeyValueItem mes = new KeyValueItem();
                mes.Id = i.ToString();
                mes.Description = nombreMesCorto ? ObtieneNombreMesCorto(i) : ObtieneNombreMesLargo(i);
                
                lista.Add(mes);
            }

            return lista;
        }
    }
}
